package org.jsea.meta.api.bean;

import lombok.Getter;
import lombok.Setter;
import org.jsea.meta.api.constant.ActionType;
import org.jsea.meta.api.constant.OrderType;
import org.jsea.meta.api.service.fmt.MetaApiFormat;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * --.
 * *
 * author   Jiang.hy
 * create   2022-04-09
 */

@Getter
@Setter
public class MetaApiDefinitionBean {

    private Object id;//有值会自动加入到 where 条件

    private List<MetaApiField> column;//字段

    private List<String> ac;//查询请求字段/特殊字段

    private boolean single;//单列查询

    private boolean obj;//对象返回

    /**
     * query返回的对象使用的是
     * HashMap
     * 根据key取值转为小写
     */
    private List<KV<String, String>> relations;//关联关系 uid-id@

    private Map<String, MetaApiFormat> format;//格式化工具集

    private Map<String, Object> data;//更新数据集

    private ActionType action;//动作类型

    private ApiTableInfo ti;//表信息

    private String from;//对应url上的from，sql中的from取ti.resource

    private String alias;//表别名

    private List<MetaApiCond> conditions = new ArrayList<>();//条件列表

    private Integer size;

    private Integer page;

    private Map<String, OrderType> order;//排序

    private String apply;//自定义拼接条件,insert逻辑会拼接在insert字段中

    private List<Object> applyValues;//insert逻辑会拼接在insert字段对应的值

    private String[] back;//insert返回字段
}
